RDSインスタンスのmax_connectionsのデフォルト値と、デフォルト値に戻す方法について
どうも、コンサルティング部の後藤です。
困っていたこと
- 対象RDSインスタンスタイプの「max_connections」のデフォルト値を知りたい。
- max_connectionsを既に任意の値に指定しており、デフォルトの設定に戻す方法を知りたい。
回答
(1). 対象RDSインスタンスタイプの「max_connections」のデフォルト値を知りたい
RDSのパラメータグループで設定されている「max_conenctions」のデフォルト値は以下の計算式によって設定されております[1]。
{DBInstanceClassMemory/12582880}
DBInstanceClassMemoryはDBインスタンスに割り当てられたメモリ容量になります。
計算式で算出した値と実際の値は異なるため、実値についてはRDSインスタンスに接続した後、以下コマンドでmax_connectionsの値を確認することが出来ます。
MySQL > SHOW GLOBAL VARIABLES LIKE 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 640 | +-----------------+-------+ 1 row in set (0.00 sec)
今回は db.t3.large を対象としていたため、max_connectionsのデフォルト値は640となっておりました。
(2). max_connectionsを既に任意の値に指定しており、デフォルトの設定に戻す方法を知りたい。
max_connectionsの値を以下のように任意の値に変更してしまっていた場合、
設定値をデフォルト値で設定されている{DBInstanceClassMemory/12582880}
に設定し直すことで、デフォルト値に戻すことが可能です。
max_connectionsの適用タイプはdynamicのため、設定変更後の適用に再起動は不要です。
また補足として、RDSのベストプラクティスではmax_connectionsの値は変更せず、必要であればインスタンスタイプのスケールアップを実施頂くのが推奨となっております。[1]
これらの値を変更することはお勧めできません。もっと接続が必要な場合は、もっと大きい RDS インスタンスサイズにアップグレードすることをお勧めします。